]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
popupMenu: Emit open-state-changed at the start of animating a submenu
authorJasper St. Pierre <jstpierre@mecheye.net>
Tue, 11 Jun 2013 22:29:36 +0000 (18:29 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Mon, 15 Jul 2013 16:34:22 +0000 (12:34 -0400)
Doing it at the end has confusing semantics, especially as there is
this point where isOpen is true, but the corresponding open-state-changed
has not been emitted.

https://bugzilla.gnome.org/show_bug.cgi?id=702539

js/ui/popupMenu.js

index a88a3c54f438753b91ec26aed29225c683bfc96c..ce7f3cce3d6c8c0347f4b1026a868bc0a2c6df66 100644 (file)
@@ -1155,6 +1155,7 @@ const PopupSubMenu = new Lang.Class({
             return;
 
         this.isOpen = true;
+        this.emit('open-state-changed', true);
 
         this.actor.show();
 
@@ -1193,12 +1194,10 @@ const PopupSubMenu = new Lang.Class({
                                onCompleteScope: this,
                                onComplete: function() {
                                    this.actor.set_height(-1);
-                                   this.emit('open-state-changed', true);
                                }
                              });
         } else {
             this._arrow.rotation_angle_z = 90;
-            this.emit('open-state-changed', true);
         }
     },
 
@@ -1207,6 +1206,7 @@ const PopupSubMenu = new Lang.Class({
             return;
 
         this.isOpen = false;
+        this.emit('open-state-changed', false);
 
         if (this._activeMenuItem)
             this._activeMenuItem.setActive(false);
@@ -1224,8 +1224,6 @@ const PopupSubMenu = new Lang.Class({
                                onComplete: function() {
                                    this.actor.hide();
                                    this.actor.set_height(-1);
-
-                                   this.emit('open-state-changed', false);
                                },
                                onUpdateScope: this,
                                onUpdate: function() {
@@ -1235,9 +1233,6 @@ const PopupSubMenu = new Lang.Class({
             } else {
                 this._arrow.rotation_angle_z = 0;
                 this.actor.hide();
-
-                this.isOpen = false;
-                this.emit('open-state-changed', false);
             }
     },